package Day09.test.view;

import Day09.bean.Express;

import java.util.Scanner;

public class Views {
    private Scanner input = new Scanner(System.in);

    public void welcome(){
        System.out.println("欢迎使用新职课快递柜");
    }

    public void bye(){
        System.out.println("欢迎下次使用~");
    }
    /*
    * 菜单
    * */
    public int menu(){
        System.out.println("请根据提示，输入功能序号：");
        System.out.println("1.快递员");
        System.out.println("2.普通用户");
        System.out.println("0.返回上级目录");
        String text = input.nextLine();//用nextLine优点：所有方法均使用，不会因输入产生冲突，可一更好的接受各种类型数据
        int num = -1;
        try{
            num = Integer.parseInt(text);//用户输入会出现异常
        }catch (NumberFormatException e){

        }
        if(num<0 || num>2){
            System.out.println("输入有误，请重新输入");
            return menu();
        }
        return num;
    }

    /*
    * 快递员
    * */
    public int cMenu(){
        System.out.println("请根据提示，输入功能序号：");
        System.out.println("1.快递录入");
        System.out.println("2.快递修改");
        System.out.println("3.快递删除");
        System.out.println("4.查看所有快递");
        System.out.println("0.退出");
        String text = input.nextLine();//用nextLine优点：所有方法均使用，不会因输入产生冲突，可一更好的接受各种类型数据
        int num = -1;
        try{
            num = Integer.parseInt(text);//用户输入会出现异常
        }catch (NumberFormatException e){

        }
        if(num<0 || num>4){
            System.out.println("输入有误，请重新输入");
            return cMenu();
        }
        return num;
    }

    /*
    * 快递录入
    *
    * */

    public Express insert(){
        System.out.println("请根据提示输入快递信息：");
        System.out.println("请输入快递单号：");
        String number = input.nextLine();
        System.out.println("请输入快递公司：");
        String company = input.nextLine();
        Express e = new Express();
        e.setCompany(company);
        e.setNumber(number);
        return e;
    }
    /*
    * 提示用户输入快递单号
    *
    * */
    public String findByNumber(){
        System.out.println("请根据提示输入快递信息：");
        System.out.println("请输入快递单号：");
        String number = input.nextLine();
        return number;

    }
    /*
    * 显示快递信息
    *
    * */
    public void printExpress(Express e){
        System.out.println("快递信息如下：");
        System.out.println("快递公司：" + e.getCompany() + "，快递单号：" + e.getNumber() + "，取件码：" + e.getCode());
    }

    public void printfNull(){
        System.out.println("快递不存在,请检查您的输入");
    }
    /*
    * 修改快递信息
    *
    * */
    public Express update(Express e){
        System.out.println("请输入新的快递单号：");
        String number = input.nextLine();
        System.out.println("请输入新的快递公司：");
        String company = input.nextLine();
        e.setNumber(number);
        e.setCompany(company);
        return e;
    }
    /*
    * 询问是否删除
    *
    * */
    public int delete(){
        System.out.println("是否确认删除?");
        System.out.println("1.确认删除");
        System.out.println("2.取消操作");
        String text = input.nextLine();
        int num = -1;
        try{
            num = Integer.parseInt(text);//用户输入会出现异常
        }catch (NumberFormatException e){

        }
        if(num<1 || num>3){
            System.out.println("输入有误，请重新输入");
            return delete();
        }
        return num;
    }
    /*
    * 遍历显示快递
    *
    * */
    public void printfAll(Express[][] es){
        int count = 0;
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                if(es[i][j] != null){
                    count++;
                    System.out.println("第" +(i+1) + "排,第" + (i+1) + "列" );
                    printExpress(es[i][j]);
                }
            }
        }
        if(count == 0){
            System.out.println("暂无快递信息");
        }
    }
    /*
    * 用户
    *
    * */
    public int uMenu(){
        System.out.println("请根据提示，进行取件：");
        System.out.println("请输入您的取件码：");
        String code = input.nextLine();
        int num = -1;
        try{
            num = Integer.parseInt(code);//用户输入会出现异常
        }catch (NumberFormatException e){

        }
        if(num<100000 || num>999999){
            System.out.println("输入有误，请重新输入");
        }
        return num;
    }

    public void expressExist(){
        System.out.println("此单号在快递柜中已存在，请勿重复存储");
    }

//    public void printCode(Express e){
//        System.out.println("您的取件码为" + e.getCode());
//    }

    public void success(){
        System.out.println("操作成功");
    }
}
